Because media files tend to be large and the duration of a download can be very large, transmission or storage of video media uses video streaming. Video streaming is achieved by multiplexing and synchronizing coded video, audio and associated information into a single bit stream or multiple bit streams. Streaming enables real-time delivery of the content, since the beginning of the stream can be played before the entire stream has been delivered. To view the content, the user terminal lodges a request to the source of the stream, which commences delivering the stream at a carefully controlled rate. The user terminal buffers the content file for a short time and then plays the file as it arrives.
Prior to streaming, the content must be encoded, a process which accomplishes: a) conversion of the content from analog to digital form, if necessary; b) creation of a content file in a format recognized by the streaming media server and player; then c) compression of the content file to minimize the bandwidth necessary for transmission from the server to the client; while d) adopting a bit rate at which the content is to be delivered. Service providers typically choose to encode content at multiple rates for enabling access to a variety of subscribers, according to the capabilities of their equipment.
The head-end of the current video delivery systems has in general a complex structure, as for example shown in the U.S. Pat. No. 6,401,243 (Sony Corporation) issued on Jun. 4, 2002. The head-end equipment generally includes a plurality of multimedia sources and means for encoding the data from the sources into streams. In many cases, the head-end includes both analog and digital sources. A digital source requires a transcoder for video codification of the source data into a multicast or unicast stream. An analog source requires an encoder for converting the analog signal (such as a TV signal) into a digital one and to encode it according to the streaming format. The sources may be real-time sources of analog video data such as a TV antenna, or video-on-demand sources such as servers storing compressed multi-media data, or a video tape library, etc. In this case, additional equipment is necessary for performing the recording and reading of the respective data.
For large amounts of data to be distributed to a large number of subscribers, IP multicast is more efficient than normal Internet transmissions because a server can broadcast data/messages to many recipients simultaneously. Unlike traditional Internet traffic that requires separate connections for each source—destination pair, IP multicasting allows many recipients to share the same source. This means that just one set of packets is transmitted for all destinations. To receive a multicast, a subscriber listens to a specific IP address on a multicast-enabled network, like tuning a television to a specific channel.
Internet Group Management Protocol (IGMP) is defined in RFC 1112, 2236, 3376 as the Internet standard for IP multicasting. IGMP establishes host memberships in particular multicast groups on a single network and allows a host to inform its local router that it wants to receive data addressed to a specific multicast group. Multicast broadcast is particularly suitable for distribution of multimedia (video, audio, data) content.
The IGMP protocol uses a “snoop mechanism” to prevent flooding. Flooding refers to broadcasting multicast traffic to all ports of a router/switch, which is normally done in the absence of such a mechanism. A layer-2 switch or a router adapted to run IGMP snooping functions examines the conversations occurring between hosts and routers, including queries and responses, to learn which ports to send multicast traffic to.
In other words, routers/switches use IGMP to ask hosts which multicasts they wish to receive. Hosts use IGMP to inform routers which multicasts they wish to receive. When a switch is placed between a host and a router, it can see which port a router is connected to, and which ports have devices connected to them that wish to receive multicast traffic. Using this information, a switch can configure its forwarding database to send multicast traffic to the ports connected to hosts that want to receive the multicast traffic. Multicast traffic is not sent to ports that do not have any connected devices that want to receive the multicast data.
Routers that support IGMP snooping send out messages on a periodic basis to query which hosts want to receive multicast traffic. The messages generated by the hosts, called membership reports or requests, provide requests for specific multicasts. IGMP snooping examines the reports and either enables or disables forwarding of that particular multicast. Examining the multicast address sent by the host enables IGMP snooping to provide automatic fine tune control that directs only the requested multicast traffic to the host, rather than all the multicast traffic.
Cessation of replies or membership reports from the hosts is generally an indication that the respective host does not wish to continue to receive multicast traffic. Hosts can also use an explicit leave message to indicate that they do not wish to listen to a multicast group. If all hosts on a particular port do not wish to receive particular multicast traffic, then that port is removed from the set of ports to which that particular multicast traffic is forwarded.
MPEG (Motion Picture Experts Group) is a working group of ISO/IEC in charge of the development of standards for digital audio and video; the term is also used to designate a respective standard. For example, MPEG2-based digital television standard defines formats for cable, satellite, and terrestrial video broadcast. MPEG enables a condensed transformation of digital video and audio signals for facilitating distribution of content files over a network. Technically, to obtain a MPEG stream, discrete samples in a stream are transformed into a bit-stream of tokens, which is much smaller than the corresponding initial stream, since only data that has changed from second to second is captured in the MPEG stream instead of capturing all information in the initial stream. MPEG tells the decoder how to inverse-represent the compacted stream back into data resembling the original stream of un-transformed data so that the data may be heard and viewed in its normal form.
Since MPEG format is widely used for coded representation of digital audio and video, it is desirable to provide a system and method of distributing multimedia content that use the MPEG format.
Currently, MPEG multicast enabled products require expensive head-end and network components. MPEG software in current use requires multiple real-time MPEG encoder devices to stream live audio/video services directly to a router or a transport network. On the client side, IGMP is employed to request individual MPEG services which are then made available by the upstream router. This ensures that the network and clients are not flooded with undesirable data.
There is a need to provide a system and method of distributing multimedia content which does away with the costly network and head-end components (such as transcoders and encoders/decoders), which support IGMP functionality. There is also a need to provide a system and method of enabling multimedia content multicast transmission of MPEG streams to a variety of end-users, be these computers and platforms (i.e. Unix, PC, servers, Windows). Still further, there is a need to provide a system and method that enables management of the multimedia streams in a basic environment with constrained bandwidth.